package sort;

import java.util.Arrays;

/**
 * 选择排序
 */
public class SellectionSort2 {
    public static void main(String[] args) {
        int[] a = {344,656,54,324,12,3445,6566,546};
        System.out.println(Arrays.toString(a));
        sort(a);
        System.out.println(Arrays.toString(a));
    }

    /*
        版本2 不用下标,每次找到小值直接跟内层循环的第一个交换
        选择排序就是跟冒泡反过来，把最小值一直往前面放
        每轮都是从没排序过后的第1个元素开始循环跟后面的比较，把小值一直往前面放
        也是总共比较长度-1轮，因为比到最后最后一个元素肯定是最大值
     */
    private static void sort(int[] a){
        //外层循环从0开始到倒数第二个，因为最后一个不用比较
        for (int i = 0; i < a.length-1; i++) {
            //内层循环从外层循环下标+1个开始到最后一个，一直跟第一个比较，比第一个小就交换
            for (int j = i+1; j < a.length; j++) {
                if (a[j] < a[i]){
                    int tem = a[i];
                    a[i] = a[j];
                    a[j] = tem;
                }
            }
        }

    }
}
